Refs #8 Added the factory and a generic save method