We present methods for creating compact and efficient data-driven character controllers. Our first method identifies the essential motion data examples tailored for a given task. It enables complex yet efficient high-dimensional controllers, as well as automatically generated connecting controllers that merge a set of independent controllers into a much larger aggregate one without modifying existing ones. Our second method iteratively refines basis functions to enable highly complex value functions. We show that our methods dramatically reduce the computation and storage requirement of controllers and enable very complex behaviors.