completed solution