dynamic allocation of variables