utilize endian.h