refactor the organisation of models