Moved towards update method (much complicated now)