datahander now accepts a callback, so that we can do whatever we desire
with hits. This is mostly for testing, but it also makes it easier
for us to change how we do hit handling in the future