Complete solution!