made ViewId and not ViewDescription hashable