New rendering interface

Should be faster and easier to maintain.