refactored generic classes, corrected recipe mistakes