pipe() implemented