Fix#2: Added factory method