This is a workout for design patterns using java