Review changes. Base on namedtuple, improve docs, extra tests.