Moved updating to a separate class for cleanliness