UIFactory should be a singleton