Add factory construction
Remove callable typehint
Merge pull request #335 from damonjones/add-factory-construction

Allow instantiation via a static factory method