Code cleanup. Added more tests.
8 files changed