refactor object models