learning controllers and directives