Use factory method rather than constructor
Remove redundant type param; reformat