cleaned up repetitive class definitions