add timeouts to make promises appear to fulfill on time