top of stack is mutable
simplify argument handling match