reorg directory structure
working on unit tests, reorging structure
adding unit tests
updated tests
cleaning up code format