add pre-process