Improved Basri 2006 implementation.