This assignment was not fun...