Quite a rework.

Moved over to async library for better control of phantom processes.