Used reinterpret_cast instead of union