fix bug . work. clean code.
more stable.