finished functional implementation of auto updating