Overhauled my work, there is a existing framework that does exactly what I want