fix callbacks (again) and add a bunch of specs