refactor: separated message- and record- (aka offset-) handling