Refactor, defineAsyncProperty better then addAsyncProperty