fix circular module dependency in Component