some refinement, don't need Processing::Proxy