Created by: ollieparanoid
This is how it should work in theory, haven't had the chance to test this myself yet (which means @drebrez: feel free to wait until I've done so).