Rewrite this to use a Role

Simplified code.