add offline callback