Started on Factory

Moved some methods from Factory to IFactory.