The big renderer update

Check the code for details