refine ?INPUT macro