initial working version with tests.
1.0.1