add table.map(), fix table.walk()