lol why does your invoke method have array_shift($args); twice?