reimplemented in nodejs