Use Lab v4 and split range parsing out into new function
Add defaults support
Add require support