finish implementing roles