Extracted "read!" method from constructor
Added magic number checking