**In layman's words:** - Separating declaration from instantiation helps decouple who uses the objects from who creates them - When you do that, polyporphism is enabled since, as long as the instantiated type is a subtype of the declaration type, all code using the variable will work - In strongly typed languages you must declare a variable stating its type, by doing simply ` var = new Process()` you are not declaring the variable first.