Split DataProcessor
This is partly as request for comments.
The main thing is to implement the connect
methods directly, and makes it clearer where the different types are used.
The main disadvantage is that the commonality in the process
is even less obvious.