static factory method over constructors