For the Design Patterns assignment due on Saturday 24th May 2014