input and pipes work; needs more testing