Got rid of the TimeConstraint and shift objects because they are really the same thing as of right now. All of the additional logic they had really belongs in the TimeRange class.