1.add byte order 2. redesign io and serialization