implement rendering engine (draft)