tighten up callback processor