hmwk 2
hmwk 3
hmwk 4