introduce InjectableAttribute