add breakTime, makeTime; optimize