Catching up
Merging Dans latest work. Fixed errors and warnings in new code (in budget.js and utils.js)