CartApp refactor