completed solution and passed tests