added abstraction of ProcessManager