input object and inputInterface
promptInterface
output
printer