updating old codebase, primarily factoring code and modifying boilerplate; work on integrating new Descriptor struct into dispatching