More effecient algorithm.