merge more into core, use gem availability to autoload