I am trying to become more comfortable with design patterns and when to correctly apply them with out over complicating my code for the sake of using a pattern. So here is a