refactored some of the old code that did checking inside the constructor, the code is now checking in the setter methods themselves