some refactoring, moving out common pieces between music models
THE music model