declare first, then run