micro-optimize invoke