finish changes as per solution