rendering now handled in Lua