This is a first-cut at improving the callback mechanisms used in