Added Abstract error
Documentation and simplification
Migrated code to new base class
EncoderStream based on gpf.BufferedOnReadStream