Start outlining classes.

Do some re-orgnisation of code and project structure.