Factored Framed into FramedReader and FramedWriter