Some generic c++ classes