Improved granularity by introducing normalized average of weights

also fixed a bug about FW point