The only comment is that I think most of the variables you care about could have been set in let blocks instead of being instances 
OR maybe passed as params.