It was meant to be more readable to say sizeof(start_ptr) than sizeof(uint64_t), but this was a bit duplicative and verbose, so I've created #defines for the envelope size overheads to avoid the verbose sizeof()+sizeof()+sizeof() statements (which also removes the unused start_ptr var)