assignment2 stuff