implement ignore options (and some other related changes)