separating dispatching and handling concerns

separating dispatching and handling concerns