add wait function