exercise 3b - read/write lock seems to work but I haven't managed to
make the upgradeable part work yet.