fix `optional` interface:
 - give parameter meaningful name
 - specify a default value -- `None`
 - switch parameter order

update tests and examples to use new interface