you always call `.new.read`, so maybe always read it during initialize? or call read in initialize. 
BTW I really like abstracting to class you did