Few implementations of various design patterns