First steps on a HAL serializer
Finish initial implementation of HAL