split up the very large factory into smaller factories and fixed all the test issues that arose