very simple task manager module
keep the wrapper local to avoid polluting the global namespace