here you expose realization details (payum's one) which is bad imho. If I implement my own manager I would also replace PurcahseStep with my own options (ofcourse if I need them)