oodp exercises, mainly design patterns