remove common methods and place in base, add polling to update