Improved algorithms