Refactoring - pulled out Dispatcher. Still some broken (commented) tests which need to be rewritten
added richness to field types
tidying up