Start to re-write sparse version.