Refactored entire project.
More sensible threading.
More sensible inter-thread API