Assignment 3 for ENSC251 class.