Add factory
Change factory interface
Add infra syobocal