added process_monitor()