System get set

This builds on top of #344.

I'm tempted to merge these two into one. As you can see this one makes the hacks less ugly.