difference between initialization and declaration