Adding Creational / Prototype impl and tests