Reorganize private methods into section
fix value and default value object checks
Shift the args before coercing the value