improvements but circular reference doesnt cover to will fail on a line do not merge