Factory stuff out into project model