add: save and restore context
add: boolean restoreContext