diff --git a/js/controllers/archive.js b/app/archive/archive.js
similarity index 100%
rename from js/controllers/archive.js
rename to app/archive/archive.js
diff --git a/js/json_collections.js b/app/archive/json_collections.js
similarity index 100%
rename from js/json_collections.js
rename to app/archive/json_collections.js
diff --git a/js/directives/directives.js b/app/common/directives.js
similarity index 98%
rename from js/directives/directives.js
rename to app/common/directives.js
index 05616fc..9400b6e 100644
--- a/js/directives/directives.js
+++ b/app/common/directives.js
@@ -45,7 +45,7 @@ jamstash.directive('fancybox', function ($compile) {
jamstash.directive('songpreview', function ($compile, subsonic) {
return {
restrict: 'E',
- templateUrl: 'js/partials/songs.html',
+ templateUrl: 'common/songs.html',
replace: false,
// pass these two names from attrs into the template scope
scope: {
diff --git a/js/filters/filters.js b/app/common/filters.js
similarity index 100%
rename from js/filters/filters.js
rename to app/common/filters.js
diff --git a/js/json_changelog.js b/app/common/json_changelog.js
similarity index 100%
rename from js/json_changelog.js
rename to app/common/json_changelog.js
diff --git a/js/controllers/main.js b/app/common/main-controller.js
similarity index 100%
rename from js/controllers/main.js
rename to app/common/main-controller.js
diff --git a/js/services/model-service.js b/app/common/model-service.js
similarity index 100%
rename from js/services/model-service.js
rename to app/common/model-service.js
diff --git a/test/services/model-service_test.js b/app/common/model-service_test.js
similarity index 100%
rename from test/services/model-service_test.js
rename to app/common/model-service_test.js
diff --git a/js/services/notification-service.js b/app/common/notification-service.js
similarity index 100%
rename from js/services/notification-service.js
rename to app/common/notification-service.js
diff --git a/js/services/player-service.js b/app/common/player-service.js
similarity index 100%
rename from js/services/player-service.js
rename to app/common/player-service.js
diff --git a/js/partials/songs.html b/app/common/songs.html
similarity index 100%
rename from js/partials/songs.html
rename to app/common/songs.html
diff --git a/js/services/utils-service.js b/app/common/utils-service.js
similarity index 99%
rename from js/services/utils-service.js
rename to app/common/utils-service.js
index c17d01e..64af084 100644
--- a/js/services/utils-service.js
+++ b/app/common/utils-service.js
@@ -3,7 +3,7 @@
*
* Provides generally useful functions, like sorts, date-related functions, localStorage access, etc.
*/
-angular.module('jamstash.utils', ['jamstash.globals'])
+angular.module('jamstash.utils', ['jamstash.settings'])
.service('utils', function ($rootScope, globals) {
'use strict';
diff --git a/test/services/utils-service_test.js b/app/common/utils-service_test.js
similarity index 100%
rename from test/services/utils-service_test.js
rename to app/common/utils-service_test.js
diff --git a/images/ajax-loader.gif b/app/images/ajax-loader.gif
similarity index 100%
rename from images/ajax-loader.gif
rename to app/images/ajax-loader.gif
diff --git a/images/albumdefault_120.jpg b/app/images/albumdefault_120.jpg
similarity index 100%
rename from images/albumdefault_120.jpg
rename to app/images/albumdefault_120.jpg
diff --git a/images/albumdefault_160.jpg b/app/images/albumdefault_160.jpg
similarity index 100%
rename from images/albumdefault_160.jpg
rename to app/images/albumdefault_160.jpg
diff --git a/images/albumdefault_25.jpg b/app/images/albumdefault_25.jpg
similarity index 100%
rename from images/albumdefault_25.jpg
rename to app/images/albumdefault_25.jpg
diff --git a/images/albumdefault_50.jpg b/app/images/albumdefault_50.jpg
similarity index 100%
rename from images/albumdefault_50.jpg
rename to app/images/albumdefault_50.jpg
diff --git a/images/albumdefault_56.jpg b/app/images/albumdefault_56.jpg
similarity index 100%
rename from images/albumdefault_56.jpg
rename to app/images/albumdefault_56.jpg
diff --git a/images/albumdefault_60.jpg b/app/images/albumdefault_60.jpg
similarity index 100%
rename from images/albumdefault_60.jpg
rename to app/images/albumdefault_60.jpg
diff --git a/images/aperture_gd_12x12.png b/app/images/aperture_gd_12x12.png
similarity index 100%
rename from images/aperture_gd_12x12.png
rename to app/images/aperture_gd_12x12.png
diff --git a/images/archive_gd_16x16.png b/app/images/archive_gd_16x16.png
similarity index 100%
rename from images/archive_gd_16x16.png
rename to app/images/archive_gd_16x16.png
diff --git a/images/arrow_down_8x8.png b/app/images/arrow_down_8x8.png
similarity index 100%
rename from images/arrow_down_8x8.png
rename to app/images/arrow_down_8x8.png
diff --git a/images/arrow_left_gl_12x12.png b/app/images/arrow_left_gl_12x12.png
similarity index 100%
rename from images/arrow_left_gl_12x12.png
rename to app/images/arrow_left_gl_12x12.png
diff --git a/images/arrow_left_gl_8x8.png b/app/images/arrow_left_gl_8x8.png
similarity index 100%
rename from images/arrow_left_gl_8x8.png
rename to app/images/arrow_left_gl_8x8.png
diff --git a/images/arrow_right_gl_12x12.png b/app/images/arrow_right_gl_12x12.png
similarity index 100%
rename from images/arrow_right_gl_12x12.png
rename to app/images/arrow_right_gl_12x12.png
diff --git a/images/arrow_right_gl_8x8.png b/app/images/arrow_right_gl_8x8.png
similarity index 100%
rename from images/arrow_right_gl_8x8.png
rename to app/images/arrow_right_gl_8x8.png
diff --git a/images/asc.gif b/app/images/asc.gif
similarity index 100%
rename from images/asc.gif
rename to app/images/asc.gif
diff --git a/images/bg.gif b/app/images/bg.gif
similarity index 100%
rename from images/bg.gif
rename to app/images/bg.gif
diff --git a/images/chat_alt_stroke_12x12.png b/app/images/chat_alt_stroke_12x12.png
similarity index 100%
rename from images/chat_alt_stroke_12x12.png
rename to app/images/chat_alt_stroke_12x12.png
diff --git a/images/check_8x7.png b/app/images/check_8x7.png
similarity index 100%
rename from images/check_8x7.png
rename to app/images/check_8x7.png
diff --git a/images/cog_16x16.png b/app/images/cog_16x16.png
similarity index 100%
rename from images/cog_16x16.png
rename to app/images/cog_16x16.png
diff --git a/images/comment_stroke_12x11.png b/app/images/comment_stroke_12x11.png
similarity index 100%
rename from images/comment_stroke_12x11.png
rename to app/images/comment_stroke_12x11.png
diff --git a/images/comment_stroke_gl_12x11.png b/app/images/comment_stroke_gl_12x11.png
similarity index 100%
rename from images/comment_stroke_gl_12x11.png
rename to app/images/comment_stroke_gl_12x11.png
diff --git a/images/desc.gif b/app/images/desc.gif
similarity index 100%
rename from images/desc.gif
rename to app/images/desc.gif
diff --git a/images/download_gd_9x12.png b/app/images/download_gd_9x12.png
similarity index 100%
rename from images/download_gd_9x12.png
rename to app/images/download_gd_9x12.png
diff --git a/images/download_gl_9x12.png b/app/images/download_gl_9x12.png
similarity index 100%
rename from images/download_gl_9x12.png
rename to app/images/download_gl_9x12.png
diff --git a/images/favicon_32x32.ico b/app/images/favicon_32x32.ico
similarity index 100%
rename from images/favicon_32x32.ico
rename to app/images/favicon_32x32.ico
diff --git a/images/favicon_32x32.png b/app/images/favicon_32x32.png
similarity index 100%
rename from images/favicon_32x32.png
rename to app/images/favicon_32x32.png
diff --git a/images/favicon_48x48.png b/app/images/favicon_48x48.png
similarity index 100%
rename from images/favicon_48x48.png
rename to app/images/favicon_48x48.png
diff --git a/images/fbpreview.png b/app/images/fbpreview.png
similarity index 100%
rename from images/fbpreview.png
rename to app/images/fbpreview.png
diff --git a/images/first_12x12.png b/app/images/first_12x12.png
similarity index 100%
rename from images/first_12x12.png
rename to app/images/first_12x12.png
diff --git a/images/first_24x24.png b/app/images/first_24x24.png
similarity index 100%
rename from images/first_24x24.png
rename to app/images/first_24x24.png
diff --git a/images/first_32x32.png b/app/images/first_32x32.png
similarity index 100%
rename from images/first_32x32.png
rename to app/images/first_32x32.png
diff --git a/images/fork_gd_11x12.png b/app/images/fork_gd_11x12.png
similarity index 100%
rename from images/fork_gd_11x12.png
rename to app/images/fork_gd_11x12.png
diff --git a/images/hash_gd_14x16.png b/app/images/hash_gd_14x16.png
similarity index 100%
rename from images/hash_gd_14x16.png
rename to app/images/hash_gd_14x16.png
diff --git a/images/headphones_gd_16x14.png b/app/images/headphones_gd_16x14.png
similarity index 100%
rename from images/headphones_gd_16x14.png
rename to app/images/headphones_gd_16x14.png
diff --git a/images/home_gl_12x12.png b/app/images/home_gl_12x12.png
similarity index 100%
rename from images/home_gl_12x12.png
rename to app/images/home_gl_12x12.png
diff --git a/images/home_gl_8x8.png b/app/images/home_gl_8x8.png
similarity index 100%
rename from images/home_gl_8x8.png
rename to app/images/home_gl_8x8.png
diff --git a/images/info_gd_4x8.png b/app/images/info_gd_4x8.png
similarity index 100%
rename from images/info_gd_4x8.png
rename to app/images/info_gd_4x8.png
diff --git a/images/info_gl_4x8.png b/app/images/info_gl_4x8.png
similarity index 100%
rename from images/info_gl_4x8.png
rename to app/images/info_gl_4x8.png
diff --git a/images/info_gl_6x12.png b/app/images/info_gl_6x12.png
similarity index 100%
rename from images/info_gl_6x12.png
rename to app/images/info_gl_6x12.png
diff --git a/images/last_12x12.png b/app/images/last_12x12.png
similarity index 100%
rename from images/last_12x12.png
rename to app/images/last_12x12.png
diff --git a/images/last_24x24.png b/app/images/last_24x24.png
similarity index 100%
rename from images/last_24x24.png
rename to app/images/last_24x24.png
diff --git a/images/last_32x32.png b/app/images/last_32x32.png
similarity index 100%
rename from images/last_32x32.png
rename to app/images/last_32x32.png
diff --git a/images/layers_alt_gd_12x12.png b/app/images/layers_alt_gd_12x12.png
similarity index 100%
rename from images/layers_alt_gd_12x12.png
rename to app/images/layers_alt_gd_12x12.png
diff --git a/images/layers_alt_gl_12x12.png b/app/images/layers_alt_gl_12x12.png
similarity index 100%
rename from images/layers_alt_gl_12x12.png
rename to app/images/layers_alt_gl_12x12.png
diff --git a/images/list_gd_12x11.png b/app/images/list_gd_12x11.png
similarity index 100%
rename from images/list_gd_12x11.png
rename to app/images/list_gd_12x11.png
diff --git a/images/list_gd_16x14.png b/app/images/list_gd_16x14.png
similarity index 100%
rename from images/list_gd_16x14.png
rename to app/images/list_gd_16x14.png
diff --git a/images/lock_stroke_gl_9x12.png b/app/images/lock_stroke_gl_9x12.png
similarity index 100%
rename from images/lock_stroke_gl_9x12.png
rename to app/images/lock_stroke_gl_9x12.png
diff --git a/images/loop_alt1_gd_12x9.png b/app/images/loop_alt1_gd_12x9.png
similarity index 100%
rename from images/loop_alt1_gd_12x9.png
rename to app/images/loop_alt1_gd_12x9.png
diff --git a/images/loop_alt3_gd_12x9.png b/app/images/loop_alt3_gd_12x9.png
similarity index 100%
rename from images/loop_alt3_gd_12x9.png
rename to app/images/loop_alt3_gd_12x9.png
diff --git a/images/magnifying_glass_alt_12x12.png b/app/images/magnifying_glass_alt_12x12.png
similarity index 100%
rename from images/magnifying_glass_alt_12x12.png
rename to app/images/magnifying_glass_alt_12x12.png
diff --git a/images/minus_8x2.png b/app/images/minus_8x2.png
similarity index 100%
rename from images/minus_8x2.png
rename to app/images/minus_8x2.png
diff --git a/images/minus_gl_8x2.png b/app/images/minus_gl_8x2.png
similarity index 100%
rename from images/minus_gl_8x2.png
rename to app/images/minus_gl_8x2.png
diff --git a/images/move_horizontal_3x8.png b/app/images/move_horizontal_3x8.png
similarity index 100%
rename from images/move_horizontal_3x8.png
rename to app/images/move_horizontal_3x8.png
diff --git a/images/movie_gd_16x16.png b/app/images/movie_gd_16x16.png
similarity index 100%
rename from images/movie_gd_16x16.png
rename to app/images/movie_gd_16x16.png
diff --git a/images/new_window_12x12.png b/app/images/new_window_12x12.png
similarity index 100%
rename from images/new_window_12x12.png
rename to app/images/new_window_12x12.png
diff --git a/images/pause_24x32.png b/app/images/pause_24x32.png
similarity index 100%
rename from images/pause_24x32.png
rename to app/images/pause_24x32.png
diff --git a/images/play_24x32.png b/app/images/play_24x32.png
similarity index 100%
rename from images/play_24x32.png
rename to app/images/play_24x32.png
diff --git a/images/play_6x8.png b/app/images/play_6x8.png
similarity index 100%
rename from images/play_6x8.png
rename to app/images/play_6x8.png
diff --git a/images/play_alt_8x8.png b/app/images/play_alt_8x8.png
similarity index 100%
rename from images/play_alt_8x8.png
rename to app/images/play_alt_8x8.png
diff --git a/images/play_alt_gd_16x16.png b/app/images/play_alt_gd_16x16.png
similarity index 100%
rename from images/play_alt_gd_16x16.png
rename to app/images/play_alt_gd_16x16.png
diff --git a/images/play_gl_6x8.png b/app/images/play_gl_6x8.png
similarity index 100%
rename from images/play_gl_6x8.png
rename to app/images/play_gl_6x8.png
diff --git a/images/plus_12x12.png b/app/images/plus_12x12.png
similarity index 100%
rename from images/plus_12x12.png
rename to app/images/plus_12x12.png
diff --git a/images/plus_16x16.png b/app/images/plus_16x16.png
similarity index 100%
rename from images/plus_16x16.png
rename to app/images/plus_16x16.png
diff --git a/images/plus_8x8.png b/app/images/plus_8x8.png
similarity index 100%
rename from images/plus_8x8.png
rename to app/images/plus_8x8.png
diff --git a/images/plus_gl_8x8.png b/app/images/plus_gl_8x8.png
similarity index 100%
rename from images/plus_gl_8x8.png
rename to app/images/plus_gl_8x8.png
diff --git a/images/reload_9x11.png b/app/images/reload_9x11.png
similarity index 100%
rename from images/reload_9x11.png
rename to app/images/reload_9x11.png
diff --git a/images/rss_12x12.png b/app/images/rss_12x12.png
similarity index 100%
rename from images/rss_12x12.png
rename to app/images/rss_12x12.png
diff --git a/images/rss_16x16.png b/app/images/rss_16x16.png
similarity index 100%
rename from images/rss_16x16.png
rename to app/images/rss_16x16.png
diff --git a/images/spinner.gif b/app/images/spinner.gif
similarity index 100%
rename from images/spinner.gif
rename to app/images/spinner.gif
diff --git a/images/star_lg_12x12.png b/app/images/star_lg_12x12.png
similarity index 100%
rename from images/star_lg_12x12.png
rename to app/images/star_lg_12x12.png
diff --git a/images/star_lgo_12x12.png b/app/images/star_lgo_12x12.png
similarity index 100%
rename from images/star_lgo_12x12.png
rename to app/images/star_lgo_12x12.png
diff --git a/images/star_w_12x12.png b/app/images/star_w_12x12.png
similarity index 100%
rename from images/star_w_12x12.png
rename to app/images/star_w_12x12.png
diff --git a/images/star_wo_12x12.png b/app/images/star_wo_12x12.png
similarity index 100%
rename from images/star_wo_12x12.png
rename to app/images/star_wo_12x12.png
diff --git a/images/star_y_12x12.png b/app/images/star_y_12x12.png
similarity index 100%
rename from images/star_y_12x12.png
rename to app/images/star_y_12x12.png
diff --git a/images/star_yo_12x12.png b/app/images/star_yo_12x12.png
similarity index 100%
rename from images/star_yo_12x12.png
rename to app/images/star_yo_12x12.png
diff --git a/images/steering_wheel_gd_12x12.png b/app/images/steering_wheel_gd_12x12.png
similarity index 100%
rename from images/steering_wheel_gd_12x12.png
rename to app/images/steering_wheel_gd_12x12.png
diff --git a/images/steering_wheel_gd_16x16.png b/app/images/steering_wheel_gd_16x16.png
similarity index 100%
rename from images/steering_wheel_gd_16x16.png
rename to app/images/steering_wheel_gd_16x16.png
diff --git a/images/subsonic_32x32.ico b/app/images/subsonic_32x32.ico
similarity index 100%
rename from images/subsonic_32x32.ico
rename to app/images/subsonic_32x32.ico
diff --git a/images/subsonic_32x32.png b/app/images/subsonic_32x32.png
similarity index 100%
rename from images/subsonic_32x32.png
rename to app/images/subsonic_32x32.png
diff --git a/images/subsonic_36.png b/app/images/subsonic_36.png
similarity index 100%
rename from images/subsonic_36.png
rename to app/images/subsonic_36.png
diff --git a/images/subsonic_48x48.png b/app/images/subsonic_48x48.png
similarity index 100%
rename from images/subsonic_48x48.png
rename to app/images/subsonic_48x48.png
diff --git a/images/subsonic_dn_36.png b/app/images/subsonic_dn_36.png
similarity index 100%
rename from images/subsonic_dn_36.png
rename to app/images/subsonic_dn_36.png
diff --git a/images/trash_fill_gd_12x12.png b/app/images/trash_fill_gd_12x12.png
similarity index 100%
rename from images/trash_fill_gd_12x12.png
rename to app/images/trash_fill_gd_12x12.png
diff --git a/images/volume_gd_12x9.png b/app/images/volume_gd_12x9.png
similarity index 100%
rename from images/volume_gd_12x9.png
rename to app/images/volume_gd_12x9.png
diff --git a/images/volume_gl_12x9.png b/app/images/volume_gl_12x9.png
similarity index 100%
rename from images/volume_gl_12x9.png
rename to app/images/volume_gl_12x9.png
diff --git a/images/volume_mute_gd_12x9.png b/app/images/volume_mute_gd_12x9.png
similarity index 100%
rename from images/volume_mute_gd_12x9.png
rename to app/images/volume_mute_gd_12x9.png
diff --git a/images/volume_mute_gl_12x9.png b/app/images/volume_mute_gl_12x9.png
similarity index 100%
rename from images/volume_mute_gl_12x9.png
rename to app/images/volume_mute_gl_12x9.png
diff --git a/images/x_11x11.png b/app/images/x_11x11.png
similarity index 100%
rename from images/x_11x11.png
rename to app/images/x_11x11.png
diff --git a/images/x_gl_11x11.png b/app/images/x_gl_11x11.png
similarity index 100%
rename from images/x_gl_11x11.png
rename to app/images/x_gl_11x11.png
diff --git a/index.html b/app/index.html
similarity index 86%
rename from index.html
rename to app/index.html
index f93f15d..68f7bd5 100755
--- a/index.html
+++ b/app/index.html
@@ -15,7 +15,7 @@
-
+