use type trait for byte_order