user process implementation