Fixed circular reference problems with delegate protocol