open and close methods are now virtual