use promises for lastfm calls