death to all non-std::bind'able, second-class function templates. long live polymorphic function objects.