Huge rewrite, change architecture, support for grunt and saner error reporting