Add static factory method