Rewrote injection handling to support arbitrary object