Think of a function as a stream line, think every call as another stream line on the right side of current call. The new call is a out branch roots from the caller. All the functions make up a stack from left to right
Think any for loop as a parallel stream of the execution stream
Think if/case statement as a forking point of a streamline, the two forks may merge, however.
Think a class as a collection of relates actions or sharing a same state.