First iteration of working assignment

Contains functional, but not yet polished, version of the assignment.