really need reinterpret_cast<u_char*> ?