change algorithm again.. fixed some Unreasonable factor and weighting