Added copy(). Fixed up selecting and setting "selected" product. Core functions are complete.