added directive and data binding