now it passes tests