add loading and overlay