term: introduce candraw() to handle lazy and invisible updates