Refactor and uses directives