Parties (Organizations and Individuals) can play various Roles in a Project. This could be at the Project, WBS or Activity level and so this has been abstracted to the ProjectElement level in this model. We will define an abstract role that all ProjectRoles will be derived from. A few concrete roles are shown as examples. Other roles may also be appropriate. Note that for implementation, PartyRole is most likely to be an Interface with ProjectPartyRole a root abstract class implementing the PartyRole interface. There will be other Role sets that may also be important for a Project. Only a few Project specific ones are shown here.