Added C++ abstraction and example code