add namedtuple proposed by lkcl in chat