Spots IOP: refactor process()

FIXME: Is there any regressions?