autoload some of the external dependencies that are rarely used, so that we don't need to load them every time.
better solution to activesupport dependency problem