Core working Task Executor, very ugly though. Still need to add user
input (just in time ie), multiple end points, exit cleanly (trivial)