Change project design and structure
Restructure project

* also adds dependencies, builder mixins and default values