add cart and some changes