handle optional paramters