Adding file caching
Adding some string utils
Lots of cleanup and commentate