Initial working code
Move implementation details to `impl` namespace
Update README with something not entirely useless.