upload h file

single file, use macro to avoid include more than once