A review of immutability and immutable collections