add opened() method
bug fix: initialize read/write taps to 0