use a byte array instead of a struct