update pool logic