General review

- Fix typos
- Follow some Go good practices
- Better documentation, more consistent godoc.org
- Refactoring