add role strategy. Refactor user and role into
AbstractValueInListStrategy