AddCursor; refactor Buffer