working on self-updating feature