deep immutability