is this to avoid circular references? (is there no way to restructure the code around that?)