async work done except bug in Factory