This paper presents a role model implementation, JAWIRO (JAva WIth ROles), which enhances Java with role support. After a brief introduction to role models and the capabilities of JAWIRO, the paper proceeds to a comparison of our model with another role model and a design pattern for implementing roles. These three approaches are compared on the basis of their abilities and performances. It is shown that role models are valuable tools for modeling dynamic real world entities as they provide many useful abilities without a significant performance overhead. The dynamic nature of agents represents a good domain for using roles to describe both behavior and coordination issues. The paper ends with a sample application for agents that demonstrates how characteristics of roles may be employed.