fix and optimisation for IRenderable