1. A computer implemented method of extending functionality of item and property types, said method comprising: accessing a hardware/software interface system which manages data stored as discrete storable units of information in a data store, said data comprising a Property having a complex property type; and using the hardware/software interface system for extending the Property using an Extension which is a strongly typed instance comprising a discrete storable unit of information that is associated with, but not an instance of, said Property, and which is managed by the hardware/software interface system, wherein said Extension can not exist independently from said Property, such that if said Property ceases to exist said Extension ceases to exist.