Solving self circular reference