added more unit tests, CLI options, started moving towards OOP model
revised unit tests