Made IRenderable an abstract class so that common code between derived types can be contained within it.