cart works

maybe buggy, but works for now. Using application level cart object is
not good choice.