p2: passes all tests