first pset, second attempt, omments removed