Traditional async callbacks

Took some tests from xdissent's pr and made them pass