Refactored to have slightly stronger structural definitions for Roles and Circles.