Big Refactoring; More separated modules; Dagger1 is now an additional option and not the base class for everything