Huge add, created base classes