complete property wrapping