Commiting mostly working code. Need to highlight row and extract methods if there is time.