allow null instances, but with seperate factory method only
create instance only when value is valid
Merge pull request #98 from mikey179/master

create instance only when value is valid