More universal cart classes

Another implementation of SessionCart