implement open, close, save as