huge test case improvements

- the tests now cover actual cases instead of shotgunning a ton
  of combinations
- all of different Callback classes have been combined into one