unit test
unit test
unit test
fix many bugs..
pythonic