Factored common code into BaseCustomizableInstanceObject
Added IntanceType interface and BaseCustomizableInstanceType