add a better rendering process. All sub-processes should be moved to their own classes and implement a unique interface. (IRenderingComponent, etc.)