Complete solution to step3 - no testing