dev work integration

Hey all, I've integrated all of the work I've done so far into one branch, this one could be merged (which would close the existing PRs) or they can be merged individually.