get rid of dependency cycle