provide a flexible way to use properties operations out of order