offline, hook with image detail, battery listener done