Added reopen(), isolated opening functionality to open()