First commit (just a sketch)
TODO: Add logging , exceptions and junit tests.