Modified code, so read 16 bytes together instead of 4 at a time, changed header to non- pointer