What is this directive for? And why it doesn't like 3 args in a method?