Right now this just has all of the files in one directory. We'll be introducing more structure to this in the future, and build a proper backend system.
The separation here isn't 100% clean yet, as there's common parts that are still protocol specific. We'll clean that up in the next commit.