DEFACTOR: add modes to parser