Added Prototype pattern