Modifiy update() to Wait on More Complex DS

update() now waits on a struct with member request type. This allows for
more complex/robust data to come in from sources. This is in expectation
of requests such as progress update or playlist update.