Changed Read function to a constructor taking a BinaryReader as an arg
Constructor inheritance implemented properly
Removed some 'new' keywords, used 'override' instead