set cursor is buggy
seems lazy evaluation cause the bugs