SmartObject add & property implementation