Model refactoring part 1