add many changes (hw7)