First commit. Stage ~ chapter5.