moved clearing the screen in the main render loop, this allows derived classes to call the OnRender() method without clearing the screen