work-in-progress, it does compile and run though but hangs early on in main() because of unimplemented features.