add offline operation