support conditions-function that is called right before async target function to give a chance adding needed arguments to target (as well as async results to wait for);
added 4th sample;