HomeWork#2: complete