refactor: use Dart native UnmodifiableMapView

Also use HashMap which is faster than Map & some coding convetion