refresh implementation