debugged 1 - 3