added addCursor() and removeCursor()
added cursor.observeHandler()