separate declaration and assignment