Made a for loop be a range-for, because of (**it)(..) which is just nuts.
Renamed op_t::operator() to apply_op.
Used a range for loop to avoid (*it)->...