Refactor package structure to use client, consumer, dispatcher model.