map shift register as extra digital pins?

i just started playing with shift register's , some 74hc595 ic's.
but i find the tutorial a bit difficult (don't worry, i'll learn it ).
but now, a idea came to my mind, you'll use an shift register to expand the number of I/O pins, amirite? the arduino has 14 digital I/O pins.
but is it possible to "map" the shift register pins (8 in this case for 1 shift register) to normal pins? like it's performing al those actions for setting an pin high or low automaticly? and then in the code you can just write something like ledPin = 16 (for a led on pin 16)

then you'll have 14+8-3=19 pins(-3 for the latch, data and clock)
is this possible, or am i thinking too easy?

you could write 2 functions, one to set values to an array using a digitalWrite,esque form, the other function updates the shift register. timing might become a problem though.