why programming with callbacks is hard (jcoglan)