Some new classes started

don't think any of this is necessarily correct but it's a start. I
haven't got my head around the c++ class format yet