bring back Role Objects to implement remaining use cases