separating dispatching and handling concerns