updated directives to have optional scope properties