Rework argument handling a bit more, should be less broken.