Implemented problems 2 and 3.