Initial commit

* build setup
* first implementation