3 args minimum