implement refresh