improve property generation