argument parsing revamp. Again. Oh the horror