some ideas behind problem 2