revise discrete and continuous