Refactor renderers to use base classes

A new ABC has been created so that we ensure that all the renderers
have the same methods.