refactor cart view