make refresh not abstract