Bridging Agent Theory and Object Orientation: Importing Social Roles in Object Oriented Languages