refined a bunch of argument readers