moved class definition into header file