Extracted Packable trait
Oooh, encoding is actually not trivial