Initial Commit of source files and beginnings of test framework