use Params::Validate instead of reinventing
refactor: rename paramater