allows us to keep track of whats changed