improve twoPass()