more convenient readFields & readMessage