add singleton design patterns.