fixed bug with optional parameters