Manual implementation of data structs