introduce the propertyWrapper