Prototype pattern implemented