major API change: Removed ImmutableBag, Bag now has a getter to return a read-only view for the bag instead
some more dartification of code