refactor to separate data model from the view to be analagous to how album data model is done