refactor basic model factory methods, new example to go along