solution and test added