implement non-threaded renderer again