What does a terminal provide