generic function open() done