use deferreds structre on viewer widget