Bookkeeping structs
Serialization
Move serialization function into implementation file