Architecture change

Dramatic architecture changes on directives