improve narrowing down circular dependency