handle traits with multiple arguments