Initialize read buffer in superclass
Add frame-level thread safety

Reading and writing frames can be done by only one thread at a time.
Use logging module instead of print