after all we're not aligning to 8byte boundary keep most of the changes though as they make the code more extensible