Added prototype and singleton design patterns