refactored models into separate files.