The Prototype Design Pattern