watch out for pointer alignment. (sigh).