add most of hw1