initial working version with tests
readme and docs