removing many constructor on factory, get faster on write and read