small-object-optimization added, divide rewrited(using normalization)