problem 3 PRO implementation