WIP: attempt to introduce Packable interface