reinterpret_cast is unnecessary