Optimized abstraction level. All rendering moved to IRenderer class for optimizing the loose coupling of the project.