add finished observer