used Method::Signatures to remove boilerplate param validation code
Merge pull request #39 from ironcamel/method-signatures

used Method::Signatures to remove boilerplate param validation code