I am currently writing Swift 3 code in Xcode 8.
When using oldValue and newValue default parameters inside the willSet and
oldValue
newValue
willSet
That's why we use NSKeyValueObservation to monitor class object