added Revealing Prototype Pattern