add cachedproperty