big code refactor - all test pass
0.1.0