improve cart; add new columns; tests; using logger to log