Adding additional docs.
Adding various documentation and c++ code