Create Factory.hpp