The prototype design pattern