Still very much work-in-progress. Moved some target framework specific code to "abstraction" classes.