recurse into args[2] if have
keep limit sequence intact
separated filter, sort and page into functions, shimmed for backwards-compat