Split the actual delegate into a separate file; this simplifies even more things. I think we're as clean as we can go... should probably start writing the real backend now :D