Changed design. Tests are passed