Less repetitive naming
Install Knockout
Simple InvoiceLine viewmodel
Show the subtotal
Update subtotal on keypress
Apply view model to each invoice line
Simple InvoiceLine viewmodel
Show the subtotal
A place to output total
Invoice view model with total function
Apply the Invoice view model to the view
Remove server side building invoice lines
Replace serverside views with clientside