try to resovle circular dependency