Forced refreshing; added comments; needs refactoring