allowing optional parameters