refactor models, fourth commit