Add recursive open/close