From 44fa1b1bcfa8a5e0aefdf243b54913c703088e25 Mon Sep 17 00:00:00 2001
From: Yahor Berdnikau <egorr.berd@gmail.com>
Date: Sat, 6 Oct 2018 14:33:36 +0200
Subject: [PATCH] Move subsonic-api module to core modules.

---
 core/subsonic-api-image-loader/build.gradle         |   2 +-
 {subsonic-api => core/subsonic-api}/build.gradle    |   0
 .../ultrasonic/api/subsonic/CommonFunctions.kt      |   0
 .../ultrasonic/api/subsonic/GetStreamUrlTest.kt     |   0
 .../api/subsonic/SubsonicAPIClientTest.kt           |   0
 .../api/subsonic/SubsonicApiAddChatMessageTest.kt   |   0
 .../api/subsonic/SubsonicApiCreateBookmarkTest.kt   |   0
 .../api/subsonic/SubsonicApiCreatePlaylistTest.kt   |   0
 .../api/subsonic/SubsonicApiCreateShareTest.kt      |   0
 .../api/subsonic/SubsonicApiDeleteBookmarkTest.kt   |   0
 .../api/subsonic/SubsonicApiDeletePlaylistTest.kt   |   0
 .../api/subsonic/SubsonicApiDeleteShareTest.kt      |   0
 .../api/subsonic/SubsonicApiErrorsTest.kt           |   0
 .../api/subsonic/SubsonicApiGetAlbumList2Test.kt    |   0
 .../subsonic/SubsonicApiGetAlbumListRequestTest.kt  |   0
 .../api/subsonic/SubsonicApiGetAlbumTest.kt         |   0
 .../api/subsonic/SubsonicApiGetArtistTest.kt        |   0
 .../api/subsonic/SubsonicApiGetArtistsTest.kt       |   0
 .../api/subsonic/SubsonicApiGetAvatarTest.kt        |   0
 .../api/subsonic/SubsonicApiGetBookmarksTest.kt     |   0
 .../api/subsonic/SubsonicApiGetChatMessagesTest.kt  |   0
 .../api/subsonic/SubsonicApiGetCoverArtTest.kt      |   0
 .../api/subsonic/SubsonicApiGetGenresTest.kt        |   0
 .../api/subsonic/SubsonicApiGetIndexesTest.kt       |   0
 .../api/subsonic/SubsonicApiGetLicenseTest.kt       |   0
 .../api/subsonic/SubsonicApiGetLyricsTest.kt        |   0
 .../subsonic/SubsonicApiGetMusicDirectoryTest.kt    |   0
 .../api/subsonic/SubsonicApiGetMusicFoldersTest.kt  |   0
 .../api/subsonic/SubsonicApiGetPlaylistTest.kt      |   0
 .../api/subsonic/SubsonicApiGetPlaylistsTest.kt     |   0
 .../api/subsonic/SubsonicApiGetPodcastsTest.kt      |   0
 .../api/subsonic/SubsonicApiGetRandomSongsTest.kt   |   0
 .../api/subsonic/SubsonicApiGetSharesTest.kt        |   0
 .../api/subsonic/SubsonicApiGetSongsByGenreTest.kt  |   0
 .../api/subsonic/SubsonicApiGetStarred2Test.kt      |   0
 .../api/subsonic/SubsonicApiGetStarredTest.kt       |   0
 .../api/subsonic/SubsonicApiGetUserTest.kt          |   0
 .../api/subsonic/SubsonicApiGetVideosListTest.kt    |   0
 .../api/subsonic/SubsonicApiJukeboxControlTest.kt   |   0
 .../api/subsonic/SubsonicApiPasswordTest.kt         |   0
 .../api/subsonic/SubsonicApiPingRequestTest.kt      |   0
 .../ultrasonic/api/subsonic/SubsonicApiSSLTest.kt   |   0
 .../api/subsonic/SubsonicApiScrobbleTest.kt         |   0
 .../api/subsonic/SubsonicApiSearchTest.kt           |   0
 .../api/subsonic/SubsonicApiSearchThreeTest.kt      |   0
 .../api/subsonic/SubsonicApiSearchTwoTest.kt        |   0
 .../ultrasonic/api/subsonic/SubsonicApiStarTest.kt  |   0
 .../api/subsonic/SubsonicApiStreamTest.kt           |   0
 .../api/subsonic/SubsonicApiUnstarTest.kt           |   0
 .../api/subsonic/SubsonicApiUpdatePlaylistTest.kt   |   0
 .../api/subsonic/SubsonicApiUpdateShareTest.kt      |   0
 .../subsonic/interceptors/BaseInterceptorTest.kt    |   0
 .../interceptors/PasswordHexInterceptorTest.kt      |   0
 .../interceptors/PasswordMD5InterceptorTest.kt      |   0
 .../interceptors/RangeHeaderInterceptorTest.kt      |   0
 .../subsonic/interceptors/VersionInterceptorTest.kt |   0
 .../api/subsonic/rules/MockWebServerRule.kt         |   0
 .../resources/error_first_generic_error.json        |   0
 .../integrationTest/resources/generic_error.json    |   0
 .../resources/get_album_list_2_ok.json              |   0
 .../resources/get_album_list_ok.json                |   0
 .../src/integrationTest/resources/get_album_ok.json |   0
 .../integrationTest/resources/get_artist_ok.json    |   0
 .../integrationTest/resources/get_artists_ok.json   |   0
 .../integrationTest/resources/get_bookmarks_ok.json |   0
 .../resources/get_chat_messages_ok.json             |   0
 .../integrationTest/resources/get_genres_ok.json    |   0
 .../integrationTest/resources/get_indexes_ok.json   |   0
 .../integrationTest/resources/get_lyrics_ok.json    |   0
 .../resources/get_music_directory_ok.json           |   0
 .../resources/get_music_folders_ok.json             |   0
 .../integrationTest/resources/get_playlist_ok.json  |   0
 .../integrationTest/resources/get_playlists_ok.json |   0
 .../integrationTest/resources/get_podcasts_ok.json  |   0
 .../resources/get_random_songs_ok.json              |   0
 .../integrationTest/resources/get_shares_ok.json    |   0
 .../resources/get_songs_by_genre_ok.json            |   0
 .../integrationTest/resources/get_starred_2_ok.json |   0
 .../integrationTest/resources/get_starred_ok.json   |   0
 .../src/integrationTest/resources/get_user_ok.json  |   0
 .../integrationTest/resources/get_videos_ok.json    |   0
 .../incompatible_client_protocol_version_error.json |   0
 .../incompatible_server_protocol_version_error.json |   0
 .../resources/jukebox_control_playlist_ok.json      |   0
 .../resources/jukebox_control_status_ok.json        |   0
 .../src/integrationTest/resources/license_ok.json   |   0
 .../resources/non_subsonic_response.json            |   0
 .../src/integrationTest/resources/ping_ok.json      |   0
 .../integrationTest/resources/ping_ok_utf8_bom.json |   0
 .../request_data_not_found_error_response.json      |   0
 .../requested_data_was_not_found_error.json         |   0
 .../resources/required_param_missing_error.json     |   0
 .../resources/reversed_tokens_generic_error.json    |   0
 .../src/integrationTest/resources/search2_ok.json   |   0
 .../src/integrationTest/resources/search3_ok.json   |   0
 .../src/integrationTest/resources/search_ok.json    |   0
 .../src/integrationTest/resources/self-signed.p12   | Bin
 .../src/integrationTest/resources/self-signed.pem   |   0
 .../token_auth_not_supported_for_ldap_error.json    |   0
 .../resources/trial_period_is_over_error.json       |   0
 .../integrationTest/resources/unexpected_error.json |   0
 .../user_not_authorized_for_operation_error.json    |   0
 .../with_additional_json_object_generic_error.json  |   0
 .../resources/without_message_generic_error.json    |   0
 .../resources/wrong_username_or_password_error.json |   0
 .../api/subsonic/ApiNotSupportedException.kt        |   0
 .../api/subsonic/ApiVersionCheckWrapper.kt          |   0
 .../ultrasonic/api/subsonic/SubsonicAPIClient.kt    |   0
 .../api/subsonic/SubsonicAPIDefinition.kt           |   0
 .../ultrasonic/api/subsonic/SubsonicAPIVersions.kt  |   0
 .../api/subsonic/SubsonicClientConfiguration.kt     |   0
 .../moire/ultrasonic/api/subsonic/SubsonicError.kt  |   0
 .../ultrasonic/api/subsonic/di/SubsonicApiModule.kt |   0
 .../api/subsonic/interceptors/PasswordExt.kt        |   0
 .../subsonic/interceptors/PasswordHexInterceptor.kt |   0
 .../subsonic/interceptors/PasswordMD5Interceptor.kt |   0
 .../interceptors/ProxyPasswordInterceptor.kt        |   0
 .../subsonic/interceptors/RangeHeaderInterceptor.kt |   0
 .../api/subsonic/interceptors/VersionInterceptor.kt |   0
 .../moire/ultrasonic/api/subsonic/models/Album.kt   |   0
 .../ultrasonic/api/subsonic/models/AlbumListType.kt |   0
 .../moire/ultrasonic/api/subsonic/models/Artist.kt  |   0
 .../ultrasonic/api/subsonic/models/Bookmark.kt      |   0
 .../ultrasonic/api/subsonic/models/ChatMessage.kt   |   0
 .../moire/ultrasonic/api/subsonic/models/Genre.kt   |   0
 .../moire/ultrasonic/api/subsonic/models/Index.kt   |   0
 .../moire/ultrasonic/api/subsonic/models/Indexes.kt |   0
 .../ultrasonic/api/subsonic/models/JukeboxAction.kt |   0
 .../ultrasonic/api/subsonic/models/JukeboxStatus.kt |   0
 .../moire/ultrasonic/api/subsonic/models/License.kt |   0
 .../moire/ultrasonic/api/subsonic/models/Lyrics.kt  |   0
 .../api/subsonic/models/MusicDirectory.kt           |   0
 .../api/subsonic/models/MusicDirectoryChild.kt      |   0
 .../ultrasonic/api/subsonic/models/MusicFolder.kt   |   0
 .../ultrasonic/api/subsonic/models/Playlist.kt      |   0
 .../api/subsonic/models/PodcastChannel.kt           |   0
 .../ultrasonic/api/subsonic/models/SearchResult.kt  |   0
 .../api/subsonic/models/SearchThreeResult.kt        |   0
 .../api/subsonic/models/SearchTwoResult.kt          |   0
 .../moire/ultrasonic/api/subsonic/models/Share.kt   |   0
 .../moire/ultrasonic/api/subsonic/models/User.kt    |   0
 .../api/subsonic/response/BookmarksResponse.kt      |   0
 .../api/subsonic/response/ChatMessagesResponse.kt   |   0
 .../api/subsonic/response/GenresResponse.kt         |   0
 .../api/subsonic/response/GetAlbumList2Response.kt  |   0
 .../api/subsonic/response/GetAlbumListResponse.kt   |   0
 .../api/subsonic/response/GetAlbumResponse.kt       |   0
 .../api/subsonic/response/GetArtistResponse.kt      |   0
 .../api/subsonic/response/GetArtistsResponse.kt     |   0
 .../api/subsonic/response/GetIndexesResponse.kt     |   0
 .../api/subsonic/response/GetLyricsResponse.kt      |   0
 .../subsonic/response/GetMusicDirectoryResponse.kt  |   0
 .../api/subsonic/response/GetPlaylistResponse.kt    |   0
 .../api/subsonic/response/GetPlaylistsResponse.kt   |   0
 .../api/subsonic/response/GetPodcastsResponse.kt    |   0
 .../api/subsonic/response/GetRandomSongsResponse.kt |   0
 .../subsonic/response/GetSongsByGenreResponse.kt    |   0
 .../api/subsonic/response/GetStarredResponse.kt     |   0
 .../api/subsonic/response/GetStarredTwoResponse.kt  |   0
 .../api/subsonic/response/GetUserResponse.kt        |   0
 .../api/subsonic/response/JukeboxResponse.kt        |   0
 .../api/subsonic/response/LicenseResponse.kt        |   0
 .../api/subsonic/response/MusicFoldersResponse.kt   |   0
 .../api/subsonic/response/SearchResponse.kt         |   0
 .../api/subsonic/response/SearchThreeResponse.kt    |   0
 .../api/subsonic/response/SearchTwoResponse.kt      |   0
 .../api/subsonic/response/SharesResponse.kt         |   0
 .../api/subsonic/response/StreamResponse.kt         |   0
 .../api/subsonic/response/SubsonicResponse.kt       |   0
 .../api/subsonic/response/VideosResponse.kt         |   0
 .../api/subsonic/ApiVersionCheckWrapperTest.kt      |   0
 .../subsonic/SubsonicAPIVersionsDeserializerTest.kt |   0
 .../api/subsonic/SubsonicAPIVersionsTest.kt         |   0
 .../interceptors/ProxyPasswordInterceptorTest.kt    |   0
 .../api/subsonic/models/AlbumListTypeTest.kt        |   0
 .../ultrasonic/api/subsonic/models/StatusTest.kt    |   0
 .../api/subsonic/response/StreamResponseTest.kt     |   0
 settings.gradle                                     |   2 +-
 subsonic-api/.gitignore                             |   2 --
 ultrasonic/build.gradle                             |   2 +-
 180 files changed, 3 insertions(+), 5 deletions(-)
 rename {subsonic-api => core/subsonic-api}/build.gradle (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/CommonFunctions.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/GetStreamUrlTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClientTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiAddChatMessageTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateBookmarkTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreatePlaylistTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateShareTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteBookmarkTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeletePlaylistTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteShareTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiErrorsTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumList2Test.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumListRequestTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistsTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAvatarTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetBookmarksTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetChatMessagesTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetCoverArtTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetGenresTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetIndexesTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLicenseTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLyricsTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirectoryTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicFoldersTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistsTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPodcastsTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetRandomSongsTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSharesTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSongsByGenreTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarred2Test.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarredTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetUserTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetVideosListTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiJukeboxControlTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPasswordTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPingRequestTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSSLTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiScrobbleTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchThreeTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTwoTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStarTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStreamTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUnstarTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdatePlaylistTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdateShareTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/BaseInterceptorTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptorTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5InterceptorTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptorTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptorTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/rules/MockWebServerRule.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/error_first_generic_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/generic_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_album_list_2_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_album_list_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_album_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_artist_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_artists_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_bookmarks_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_chat_messages_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_genres_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_indexes_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_lyrics_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_music_directory_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_music_folders_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_playlist_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_playlists_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_podcasts_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_random_songs_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_shares_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_songs_by_genre_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_starred_2_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_starred_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_user_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/get_videos_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/incompatible_client_protocol_version_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/incompatible_server_protocol_version_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/jukebox_control_playlist_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/jukebox_control_status_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/license_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/non_subsonic_response.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/ping_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/ping_ok_utf8_bom.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/request_data_not_found_error_response.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/requested_data_was_not_found_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/required_param_missing_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/reversed_tokens_generic_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/search2_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/search3_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/search_ok.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/self-signed.p12 (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/self-signed.pem (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/token_auth_not_supported_for_ldap_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/trial_period_is_over_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/unexpected_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/user_not_authorized_for_operation_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/with_additional_json_object_generic_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/without_message_generic_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/integrationTest/resources/wrong_username_or_password_error.json (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiNotSupportedException.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapper.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClient.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIDefinition.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersions.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicClientConfiguration.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicError.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/di/SubsonicApiModule.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordExt.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptor.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5Interceptor.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptor.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptor.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptor.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Album.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListType.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Artist.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Bookmark.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/ChatMessage.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Genre.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Index.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Indexes.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxAction.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxStatus.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/License.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Lyrics.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectory.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectoryChild.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicFolder.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Playlist.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/PodcastChannel.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchResult.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchThreeResult.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchTwoResult.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Share.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/User.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/BookmarksResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/ChatMessagesResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GenresResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumList2Response.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumListResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistsResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetIndexesResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetLyricsResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetMusicDirectoryResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistsResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPodcastsResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetRandomSongsResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetSongsByGenreResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredTwoResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetUserResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/JukeboxResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/LicenseResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/MusicFoldersResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchThreeResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchTwoResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SharesResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SubsonicResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/VideosResponse.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/test/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapperTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsDeserializerTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/test/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptorTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListTypeTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/StatusTest.kt (100%)
 rename {subsonic-api => core/subsonic-api}/src/test/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponseTest.kt (100%)
 delete mode 100644 subsonic-api/.gitignore

diff --git a/core/subsonic-api-image-loader/build.gradle b/core/subsonic-api-image-loader/build.gradle
index 3357408d..20063309 100644
--- a/core/subsonic-api-image-loader/build.gradle
+++ b/core/subsonic-api-image-loader/build.gradle
@@ -8,7 +8,7 @@ android {
 
 dependencies {
     api project(':core:domain')
-    api project(':subsonic-api')
+    api project(':core:subsonic-api')
     api(other.picasso) {
         exclude group: "com.android.support"
     }
diff --git a/subsonic-api/build.gradle b/core/subsonic-api/build.gradle
similarity index 100%
rename from subsonic-api/build.gradle
rename to core/subsonic-api/build.gradle
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/CommonFunctions.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/CommonFunctions.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/CommonFunctions.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/CommonFunctions.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/GetStreamUrlTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/GetStreamUrlTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/GetStreamUrlTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/GetStreamUrlTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClientTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClientTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClientTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClientTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiAddChatMessageTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiAddChatMessageTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiAddChatMessageTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiAddChatMessageTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateBookmarkTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateBookmarkTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateBookmarkTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateBookmarkTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreatePlaylistTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreatePlaylistTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreatePlaylistTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreatePlaylistTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateShareTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateShareTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateShareTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateShareTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteBookmarkTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteBookmarkTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteBookmarkTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteBookmarkTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeletePlaylistTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeletePlaylistTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeletePlaylistTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeletePlaylistTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteShareTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteShareTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteShareTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteShareTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiErrorsTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiErrorsTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiErrorsTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiErrorsTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumList2Test.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumList2Test.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumList2Test.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumList2Test.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumListRequestTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumListRequestTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumListRequestTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumListRequestTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistsTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistsTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistsTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistsTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAvatarTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAvatarTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAvatarTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAvatarTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetBookmarksTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetBookmarksTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetBookmarksTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetBookmarksTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetChatMessagesTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetChatMessagesTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetChatMessagesTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetChatMessagesTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetCoverArtTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetCoverArtTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetCoverArtTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetCoverArtTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetGenresTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetGenresTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetGenresTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetGenresTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetIndexesTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetIndexesTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetIndexesTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetIndexesTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLicenseTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLicenseTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLicenseTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLicenseTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLyricsTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLyricsTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLyricsTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLyricsTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirectoryTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirectoryTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirectoryTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirectoryTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicFoldersTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicFoldersTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicFoldersTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicFoldersTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistsTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistsTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistsTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistsTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPodcastsTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPodcastsTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPodcastsTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPodcastsTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetRandomSongsTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetRandomSongsTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetRandomSongsTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetRandomSongsTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSharesTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSharesTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSharesTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSharesTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSongsByGenreTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSongsByGenreTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSongsByGenreTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSongsByGenreTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarred2Test.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarred2Test.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarred2Test.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarred2Test.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarredTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarredTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarredTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarredTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetUserTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetUserTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetUserTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetUserTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetVideosListTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetVideosListTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetVideosListTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetVideosListTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiJukeboxControlTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiJukeboxControlTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiJukeboxControlTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiJukeboxControlTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPasswordTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPasswordTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPasswordTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPasswordTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPingRequestTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPingRequestTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPingRequestTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPingRequestTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSSLTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSSLTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSSLTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSSLTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiScrobbleTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiScrobbleTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiScrobbleTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiScrobbleTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchThreeTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchThreeTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchThreeTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchThreeTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTwoTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTwoTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTwoTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTwoTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStarTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStarTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStarTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStarTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStreamTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStreamTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStreamTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStreamTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUnstarTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUnstarTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUnstarTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUnstarTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdatePlaylistTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdatePlaylistTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdatePlaylistTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdatePlaylistTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdateShareTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdateShareTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdateShareTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdateShareTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/BaseInterceptorTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/BaseInterceptorTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/BaseInterceptorTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/BaseInterceptorTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptorTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptorTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptorTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptorTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5InterceptorTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5InterceptorTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5InterceptorTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5InterceptorTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptorTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptorTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptorTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptorTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptorTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptorTest.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptorTest.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptorTest.kt
diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/rules/MockWebServerRule.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/rules/MockWebServerRule.kt
similarity index 100%
rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/rules/MockWebServerRule.kt
rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/rules/MockWebServerRule.kt
diff --git a/subsonic-api/src/integrationTest/resources/error_first_generic_error.json b/core/subsonic-api/src/integrationTest/resources/error_first_generic_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/error_first_generic_error.json
rename to core/subsonic-api/src/integrationTest/resources/error_first_generic_error.json
diff --git a/subsonic-api/src/integrationTest/resources/generic_error.json b/core/subsonic-api/src/integrationTest/resources/generic_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/generic_error.json
rename to core/subsonic-api/src/integrationTest/resources/generic_error.json
diff --git a/subsonic-api/src/integrationTest/resources/get_album_list_2_ok.json b/core/subsonic-api/src/integrationTest/resources/get_album_list_2_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_album_list_2_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_album_list_2_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_album_list_ok.json b/core/subsonic-api/src/integrationTest/resources/get_album_list_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_album_list_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_album_list_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_album_ok.json b/core/subsonic-api/src/integrationTest/resources/get_album_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_album_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_album_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_artist_ok.json b/core/subsonic-api/src/integrationTest/resources/get_artist_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_artist_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_artist_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_artists_ok.json b/core/subsonic-api/src/integrationTest/resources/get_artists_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_artists_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_artists_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_bookmarks_ok.json b/core/subsonic-api/src/integrationTest/resources/get_bookmarks_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_bookmarks_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_bookmarks_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_chat_messages_ok.json b/core/subsonic-api/src/integrationTest/resources/get_chat_messages_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_chat_messages_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_chat_messages_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_genres_ok.json b/core/subsonic-api/src/integrationTest/resources/get_genres_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_genres_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_genres_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_indexes_ok.json b/core/subsonic-api/src/integrationTest/resources/get_indexes_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_indexes_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_indexes_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_lyrics_ok.json b/core/subsonic-api/src/integrationTest/resources/get_lyrics_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_lyrics_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_lyrics_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_music_directory_ok.json b/core/subsonic-api/src/integrationTest/resources/get_music_directory_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_music_directory_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_music_directory_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_music_folders_ok.json b/core/subsonic-api/src/integrationTest/resources/get_music_folders_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_music_folders_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_music_folders_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_playlist_ok.json b/core/subsonic-api/src/integrationTest/resources/get_playlist_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_playlist_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_playlist_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_playlists_ok.json b/core/subsonic-api/src/integrationTest/resources/get_playlists_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_playlists_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_playlists_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_podcasts_ok.json b/core/subsonic-api/src/integrationTest/resources/get_podcasts_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_podcasts_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_podcasts_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_random_songs_ok.json b/core/subsonic-api/src/integrationTest/resources/get_random_songs_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_random_songs_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_random_songs_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_shares_ok.json b/core/subsonic-api/src/integrationTest/resources/get_shares_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_shares_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_shares_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_songs_by_genre_ok.json b/core/subsonic-api/src/integrationTest/resources/get_songs_by_genre_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_songs_by_genre_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_songs_by_genre_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_starred_2_ok.json b/core/subsonic-api/src/integrationTest/resources/get_starred_2_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_starred_2_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_starred_2_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_starred_ok.json b/core/subsonic-api/src/integrationTest/resources/get_starred_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_starred_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_starred_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_user_ok.json b/core/subsonic-api/src/integrationTest/resources/get_user_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_user_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_user_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/get_videos_ok.json b/core/subsonic-api/src/integrationTest/resources/get_videos_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/get_videos_ok.json
rename to core/subsonic-api/src/integrationTest/resources/get_videos_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/incompatible_client_protocol_version_error.json b/core/subsonic-api/src/integrationTest/resources/incompatible_client_protocol_version_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/incompatible_client_protocol_version_error.json
rename to core/subsonic-api/src/integrationTest/resources/incompatible_client_protocol_version_error.json
diff --git a/subsonic-api/src/integrationTest/resources/incompatible_server_protocol_version_error.json b/core/subsonic-api/src/integrationTest/resources/incompatible_server_protocol_version_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/incompatible_server_protocol_version_error.json
rename to core/subsonic-api/src/integrationTest/resources/incompatible_server_protocol_version_error.json
diff --git a/subsonic-api/src/integrationTest/resources/jukebox_control_playlist_ok.json b/core/subsonic-api/src/integrationTest/resources/jukebox_control_playlist_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/jukebox_control_playlist_ok.json
rename to core/subsonic-api/src/integrationTest/resources/jukebox_control_playlist_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/jukebox_control_status_ok.json b/core/subsonic-api/src/integrationTest/resources/jukebox_control_status_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/jukebox_control_status_ok.json
rename to core/subsonic-api/src/integrationTest/resources/jukebox_control_status_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/license_ok.json b/core/subsonic-api/src/integrationTest/resources/license_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/license_ok.json
rename to core/subsonic-api/src/integrationTest/resources/license_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/non_subsonic_response.json b/core/subsonic-api/src/integrationTest/resources/non_subsonic_response.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/non_subsonic_response.json
rename to core/subsonic-api/src/integrationTest/resources/non_subsonic_response.json
diff --git a/subsonic-api/src/integrationTest/resources/ping_ok.json b/core/subsonic-api/src/integrationTest/resources/ping_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/ping_ok.json
rename to core/subsonic-api/src/integrationTest/resources/ping_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/ping_ok_utf8_bom.json b/core/subsonic-api/src/integrationTest/resources/ping_ok_utf8_bom.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/ping_ok_utf8_bom.json
rename to core/subsonic-api/src/integrationTest/resources/ping_ok_utf8_bom.json
diff --git a/subsonic-api/src/integrationTest/resources/request_data_not_found_error_response.json b/core/subsonic-api/src/integrationTest/resources/request_data_not_found_error_response.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/request_data_not_found_error_response.json
rename to core/subsonic-api/src/integrationTest/resources/request_data_not_found_error_response.json
diff --git a/subsonic-api/src/integrationTest/resources/requested_data_was_not_found_error.json b/core/subsonic-api/src/integrationTest/resources/requested_data_was_not_found_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/requested_data_was_not_found_error.json
rename to core/subsonic-api/src/integrationTest/resources/requested_data_was_not_found_error.json
diff --git a/subsonic-api/src/integrationTest/resources/required_param_missing_error.json b/core/subsonic-api/src/integrationTest/resources/required_param_missing_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/required_param_missing_error.json
rename to core/subsonic-api/src/integrationTest/resources/required_param_missing_error.json
diff --git a/subsonic-api/src/integrationTest/resources/reversed_tokens_generic_error.json b/core/subsonic-api/src/integrationTest/resources/reversed_tokens_generic_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/reversed_tokens_generic_error.json
rename to core/subsonic-api/src/integrationTest/resources/reversed_tokens_generic_error.json
diff --git a/subsonic-api/src/integrationTest/resources/search2_ok.json b/core/subsonic-api/src/integrationTest/resources/search2_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/search2_ok.json
rename to core/subsonic-api/src/integrationTest/resources/search2_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/search3_ok.json b/core/subsonic-api/src/integrationTest/resources/search3_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/search3_ok.json
rename to core/subsonic-api/src/integrationTest/resources/search3_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/search_ok.json b/core/subsonic-api/src/integrationTest/resources/search_ok.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/search_ok.json
rename to core/subsonic-api/src/integrationTest/resources/search_ok.json
diff --git a/subsonic-api/src/integrationTest/resources/self-signed.p12 b/core/subsonic-api/src/integrationTest/resources/self-signed.p12
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/self-signed.p12
rename to core/subsonic-api/src/integrationTest/resources/self-signed.p12
diff --git a/subsonic-api/src/integrationTest/resources/self-signed.pem b/core/subsonic-api/src/integrationTest/resources/self-signed.pem
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/self-signed.pem
rename to core/subsonic-api/src/integrationTest/resources/self-signed.pem
diff --git a/subsonic-api/src/integrationTest/resources/token_auth_not_supported_for_ldap_error.json b/core/subsonic-api/src/integrationTest/resources/token_auth_not_supported_for_ldap_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/token_auth_not_supported_for_ldap_error.json
rename to core/subsonic-api/src/integrationTest/resources/token_auth_not_supported_for_ldap_error.json
diff --git a/subsonic-api/src/integrationTest/resources/trial_period_is_over_error.json b/core/subsonic-api/src/integrationTest/resources/trial_period_is_over_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/trial_period_is_over_error.json
rename to core/subsonic-api/src/integrationTest/resources/trial_period_is_over_error.json
diff --git a/subsonic-api/src/integrationTest/resources/unexpected_error.json b/core/subsonic-api/src/integrationTest/resources/unexpected_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/unexpected_error.json
rename to core/subsonic-api/src/integrationTest/resources/unexpected_error.json
diff --git a/subsonic-api/src/integrationTest/resources/user_not_authorized_for_operation_error.json b/core/subsonic-api/src/integrationTest/resources/user_not_authorized_for_operation_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/user_not_authorized_for_operation_error.json
rename to core/subsonic-api/src/integrationTest/resources/user_not_authorized_for_operation_error.json
diff --git a/subsonic-api/src/integrationTest/resources/with_additional_json_object_generic_error.json b/core/subsonic-api/src/integrationTest/resources/with_additional_json_object_generic_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/with_additional_json_object_generic_error.json
rename to core/subsonic-api/src/integrationTest/resources/with_additional_json_object_generic_error.json
diff --git a/subsonic-api/src/integrationTest/resources/without_message_generic_error.json b/core/subsonic-api/src/integrationTest/resources/without_message_generic_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/without_message_generic_error.json
rename to core/subsonic-api/src/integrationTest/resources/without_message_generic_error.json
diff --git a/subsonic-api/src/integrationTest/resources/wrong_username_or_password_error.json b/core/subsonic-api/src/integrationTest/resources/wrong_username_or_password_error.json
similarity index 100%
rename from subsonic-api/src/integrationTest/resources/wrong_username_or_password_error.json
rename to core/subsonic-api/src/integrationTest/resources/wrong_username_or_password_error.json
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiNotSupportedException.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiNotSupportedException.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiNotSupportedException.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiNotSupportedException.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapper.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapper.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapper.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapper.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClient.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClient.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClient.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClient.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIDefinition.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIDefinition.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIDefinition.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIDefinition.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersions.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersions.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersions.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersions.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicClientConfiguration.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicClientConfiguration.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicClientConfiguration.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicClientConfiguration.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicError.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicError.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicError.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicError.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/di/SubsonicApiModule.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/di/SubsonicApiModule.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/di/SubsonicApiModule.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/di/SubsonicApiModule.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordExt.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordExt.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordExt.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordExt.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptor.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptor.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptor.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptor.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5Interceptor.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5Interceptor.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5Interceptor.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5Interceptor.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptor.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptor.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptor.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptor.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptor.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptor.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptor.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptor.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptor.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptor.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptor.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptor.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Album.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Album.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Album.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Album.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListType.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListType.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListType.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListType.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Artist.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Artist.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Artist.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Artist.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Bookmark.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Bookmark.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Bookmark.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Bookmark.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/ChatMessage.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/ChatMessage.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/ChatMessage.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/ChatMessage.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Genre.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Genre.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Genre.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Genre.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Index.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Index.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Index.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Index.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Indexes.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Indexes.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Indexes.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Indexes.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxAction.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxAction.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxAction.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxAction.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxStatus.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxStatus.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxStatus.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxStatus.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/License.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/License.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/License.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/License.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Lyrics.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Lyrics.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Lyrics.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Lyrics.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectory.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectory.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectory.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectory.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectoryChild.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectoryChild.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectoryChild.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectoryChild.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicFolder.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicFolder.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicFolder.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicFolder.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Playlist.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Playlist.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Playlist.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Playlist.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/PodcastChannel.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/PodcastChannel.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/PodcastChannel.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/PodcastChannel.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchResult.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchResult.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchResult.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchResult.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchThreeResult.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchThreeResult.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchThreeResult.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchThreeResult.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchTwoResult.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchTwoResult.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchTwoResult.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchTwoResult.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Share.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Share.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Share.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Share.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/User.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/User.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/User.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/User.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/BookmarksResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/BookmarksResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/BookmarksResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/BookmarksResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/ChatMessagesResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/ChatMessagesResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/ChatMessagesResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/ChatMessagesResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GenresResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GenresResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GenresResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GenresResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumList2Response.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumList2Response.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumList2Response.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumList2Response.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumListResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumListResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumListResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumListResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistsResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistsResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistsResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistsResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetIndexesResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetIndexesResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetIndexesResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetIndexesResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetLyricsResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetLyricsResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetLyricsResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetLyricsResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetMusicDirectoryResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetMusicDirectoryResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetMusicDirectoryResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetMusicDirectoryResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistsResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistsResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistsResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistsResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPodcastsResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPodcastsResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPodcastsResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPodcastsResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetRandomSongsResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetRandomSongsResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetRandomSongsResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetRandomSongsResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetSongsByGenreResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetSongsByGenreResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetSongsByGenreResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetSongsByGenreResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredTwoResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredTwoResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredTwoResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredTwoResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetUserResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetUserResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetUserResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetUserResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/JukeboxResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/JukeboxResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/JukeboxResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/JukeboxResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/LicenseResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/LicenseResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/LicenseResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/LicenseResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/MusicFoldersResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/MusicFoldersResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/MusicFoldersResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/MusicFoldersResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchThreeResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchThreeResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchThreeResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchThreeResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchTwoResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchTwoResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchTwoResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchTwoResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SharesResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SharesResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SharesResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SharesResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SubsonicResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SubsonicResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SubsonicResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SubsonicResponse.kt
diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/VideosResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/VideosResponse.kt
similarity index 100%
rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/VideosResponse.kt
rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/VideosResponse.kt
diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapperTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapperTest.kt
similarity index 100%
rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapperTest.kt
rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapperTest.kt
diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsDeserializerTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsDeserializerTest.kt
similarity index 100%
rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsDeserializerTest.kt
rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsDeserializerTest.kt
diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsTest.kt
similarity index 100%
rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsTest.kt
rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsTest.kt
diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptorTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptorTest.kt
similarity index 100%
rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptorTest.kt
rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptorTest.kt
diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListTypeTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListTypeTest.kt
similarity index 100%
rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListTypeTest.kt
rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListTypeTest.kt
diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/StatusTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/StatusTest.kt
similarity index 100%
rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/StatusTest.kt
rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/StatusTest.kt
diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponseTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponseTest.kt
similarity index 100%
rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponseTest.kt
rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponseTest.kt
diff --git a/settings.gradle b/settings.gradle
index 5ddec4e9..b5554310 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,6 +1,6 @@
 include ':core:library'
 include ':core:domain'
-include ':subsonic-api'
+include ':core:subsonic-api'
 include ':core:subsonic-api-image-loader'
 include ':core:cache'
 include ':core:menudrawer'
diff --git a/subsonic-api/.gitignore b/subsonic-api/.gitignore
deleted file mode 100644
index e8fa30f8..00000000
--- a/subsonic-api/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/build
-*.iml
diff --git a/ultrasonic/build.gradle b/ultrasonic/build.gradle
index edee1845..98a4ed96 100644
--- a/ultrasonic/build.gradle
+++ b/ultrasonic/build.gradle
@@ -54,7 +54,7 @@ dependencies {
     implementation project(':core:pulltorefresh')
     implementation project(':core:library')
     implementation project(':core:domain')
-    implementation project(':subsonic-api')
+    implementation project(':core:subsonic-api')
     implementation project(':core:subsonic-api-image-loader')
     implementation project(':core:cache')