draft of partial updates functionality
util func