Updated the header file with additional classes and more comments