use an opaque object when passing data to & from processors