@amyhoy (1) to understand; (2) because I like immutable data structures; (3) because my thing has hundreds of little components communicating and copying themselves into different contexts; (4) because I'm an idiot