Added some comments and new classes