Implemented Factory.