commit model refactor