Avoid a circular memory leak by not holding strong references to an engine via the value objects.
Avoid a circular memory leak by not holding strong references to an engine via the value objects.