Remove circular dependencies between libs, use callback function pointers instead