Implements the Prototype design pattern