Refactors the Item Attributes

This works better for making sure that default values get set implicitly to appropriate values for classes inheriting the attributes.