initial commit
refactoring added, added support to run the console application
made everything static so this can be used statically OR by intantiation