Removing hardcoded factories in favor of discovering them dynamically