gross arg code for perform.  needs length check