implement extra credit 2th