Inspired by one of the projects I worked on where I had to create something similar. There was a library already out there (mentioned in the readme) but it was restrictive and didn't do all that I needed it to do. Opened this up to the world now so feel free to give any advice or contribute!