Finally, another advantage of treating a role as a kind of project is that roles can be defined in terms of another more generic role which will make their specification much simpler and far more stable, as well as allow the complex state model and associated roles described above to be reused across many roles.