do not use reinterpret_cast if not needed