currently mut refernce will *not* be downgraded to shared if it is sufficient(see relevant test for example)