Fixed error where the defaults weren't working, also changed the property hierarchy so it's a little cleaner to implement