more rewriting to be more precise