all mode parameters are optional