optimized open()
close #9
closed #8