now all types for optional parameters are specified as upcasts