Feature/refactor models