added general.process func