cleaned up shopping cart, still needs testing (mainly live updating of adding / removing)