add live updates, system to only update when necessary almost works