Big refactor

* Plugin system
* Put stuff in folders