remove unnecessary includes; refine multiple specialization macro