working on breaking out directives to be reused, modules consuming modules