Static factory method

Handles #60