add header/source implementation util and refine the whole package