add prototype design patterns.