More directives, cleaner controller