added the optional parameters