work in progress
Add tests