add loader animation, add timeout