change in arg structure, more requirements
enforced mutual exclusivity on input args