lots of stuff. Assignment 3 mostly