Updated it so the callbacks don't need to be overloaded.