renamed partial_function + organized headers