Move subscriptions to their own module (and fix some circ imports)