implemented homework1 requirements