Spring cleaning!

Apologies for the size of this diff, it's a lot to take in, so it might be easier to read the individual commits in order to follow the progression of the work.

Anyways, I just went to town cleaning up as much code as I could. Some things were overly verbose so I shortened them, some code was found to be redundant, I improve efficiency by reducing the number of calls to `fn_find_backups`, etc. 

I hope you like this, I've been testing it since last night and it looks good, please let me know if you have any issues!