new immutable map, ISMap