Thinking in immutability
schneide.wordpress.com