fix observer mechanism
template changes again + allow further extend() for VMs
unit tests for directives (WIP)