Now support Template & Explicit & std::function()