Refactored to use Composition instead of Inheritance in regards to the TimePeriod object. I am only using this for behaviour not for polymorphism.  Also implemented a shift object and checking to see if a constraint conflicts.