Add candidate sift_o function.  Doesn't work yet so deemed private.