directive and event exercises