update
c style
more thinking
more neat