usage depends on whether we want iteration or list