Refactor and add last.fm and discogs initial support