more contact normalization, also pass contact instead of params