optional arguments; fix defined