Revert "remove through"

This reverts commit 93e74b3148bed3e5da8d9debbfd55fcbe0cb263a.
Revert "remove derequire from tests"

This reverts commit 1534a812c8959c7033ff1aebd3f6a09823ccb720.
callback