Added property change callback convention to directives