[di][factory] introduce abstract payment factory.

it fixes #15