add edit capabilities to cart. refactor to use angular-material