consume input from various sources, best first; om nom nom!