Re-structured with newest class desaign