public MutableSortedMap<K, V> asUnmodifiable() {
   synchronized (this.lock) {
     return UnmodifiableTreeMap.of(this);
   }
 }
 @Override
 public MutableSortedMap<K, V> tailMap(K fromKey) {
   return UnmodifiableTreeMap.of(this.getMutableSortedMap().tailMap(fromKey));
 }
 @Override
 public MutableSortedMap<K, V> subMap(K fromKey, K toKey) {
   return UnmodifiableTreeMap.of(this.getMutableSortedMap().subMap(fromKey, toKey));
 }
 @Override
 public MutableSortedMap<K, V> headMap(K toKey) {
   return UnmodifiableTreeMap.of(this.getMutableSortedMap().headMap(toKey));
 }