Use draw_idle instead of draw; other minor adjusts.