A definite improvement...
New linear version