pulled everything that was done in processor_with_add_function branch