1.factory, prototype