fix circular dependancy