Refactored the common role into a number of components