Fix bug
Add tests