add ICursorDerive protocol, allows derived cursor to be customized by
the original cursor in a parasitic way.