doc
use Property.value instead of set() and get()
use Property.link/unlink instead of addObserver/removeObserver