Written in Python 3