pass 1(parse options) and 2 (require name)