implement default generic values
make reshape use generic value