Major revision

* Made packages more modular
* Made packages more extensible