make work for text nodes as well, make chainable