refactoring: models distributed to separate files