rewrite to use only 2. also use generic, reusable functions for selection flushing so each operator doesn't need to implement its own. and merge more-less operation into the same function, just call the selection flush function with select/deselect arg.