Modeling and programming with roles: introducing JavaStage See original record