Not much can be improved. Relabelled a few vars for an easier read.