PR for code review.

Immutable configuration classes make sense. I will read up on that article for the implementation info.