implemented the steps all to pass