hw2 and hw1 optional