Added function_traits and -Wall