To allow for an engine to continue to run while at the same time
returning from a function when a component of that engine finishes
a pattern can be used that ties and engines listeners to the function
return, allowing for both to be used simulatenously.
Change-Id: Iab49e0c7b233138bc2d02247ab7aa3d99a82cd67