Finished the implementations of the different factories.