mostly constness, and using a bindable callback.