merge indirect and direct processing modes into single one.
fix parameter mismatch