cnnn's method.