Although the book is relatively outdated, I'll try my best to use it with Python 3