remove async-done require and add once to ensure callback only called once