argument parsing without stack setup