refactor of echnoest and musicmatch