Bug fixes. Add tests