abstracted out process state