Implementations of some design patterns. Just for fun