homework1, task2, edit by syb