Restructured the framework to be more generic and allow for growth