Refactored into weighin model