add `preprocesser` option

maybe you can just directly define fn here