better inject method