implemented a global base class that can be applied to all roles
merging in current master
merging upstream/master