Major refactor, now single threaded

I'm not sure why exceptions are involved here?