ex20.py no moar empty commits