use 'auto *' for pointers; clearer usage, no deep copying