tool_operate: Moved argument parsing into operate()