property widgets refactored