move choices, data structures, web api, libspotify abstraction from design into implementation