refactor(create): add once wrap function