changed cross_functions to take a pointer to the interface this can be initialized with this