switch to ImmutableValueMap wherever possible