callbacks finally working correctly, tests still broken :c