work on models, refactor