first check in of C++ code

functionally complete needs clean up