Added @class description for each class and refactored slightly.