initial design all in C++
Merge pull request #5 from joncheryl/master

initial design all in C++