Major improvments

* Windows support
* Consistent code style
* Better documentation