Add memoize_property decorator