fix dependency cycle