optional arguments should be at the end (otherwise they are not optional anymore).

and the array should be typehinted