HW1 does everything except the pertinent bits