restructured and custome directives