refactored directive, using bound props instead of exprssions