improve after reading paper...