Minor code shuffle
Minor cleanup
Introducing CXX11 lambda, removing the need for Boost when CXX11 is supported
Add support for variadic argumentes (requires CXX14)