Prototype pattern implementation