use map instead of for loop for subtotal calc in ::Cart