make `new` optional.
Merge pull request #7 from Raynos/patch-1

make `new` optional.