moved inject to importlib
moved decorator to functools