Completed solution for challenge