Implement callback functionality, and test.
Format the classes according to policy.