Added factory that loads data from a source and then constructs differently based on a type field