added loading animation and overlay