moved the refresh function into the abstract class