background process implementation