Add prototype design pattern