rewrite #1 (or 2)
continuing rewriting. stopped at argslist parsing.