Changing a lot, in the middle of changes

Adding a package management feature, must rewrite
almost everything, therefore the next few commits
will break everything until the feature is completed.