Restarted project and keeping it simple. No async, no complexity and forward thinking generics. Just get it working.