Generic roles: reducing code replication - Barbosa, F.S. (2013)