Updated to pass all tests