Stable from chapter 2
Stable from chapter 3 except unit test
Merge remote-tracking branch 'github/master'