Fix
Fixing IsFunctor
Using type_traits