avoid compile error for library
added <functional> on template