further abstraction
implemented mode2 methods (except calculateComp)