@dsaff If the factory method just takes a String, then if in the future we want to pass more parameters, things will get really messy. As soon as this change is in, I'm going to work on adding a second parameter

@noel-yap `parse()` doesn't belong here; it should go in the calling code