Changed a comment
Used std::result_of to simplify kwds
Simplified return type of kwds
Some changes to metaprogramming
More clean-up of metaprogramming
A bit more refactoring
Merge pull request #221 from izaid/refactor

Refactor