add genPass function