added a test rendering window, replaced convoluted caching attempt with an object oriented approach