Merge pull request #1 from rogerliubin/master

merge
modify interfaces of deferred objects to support variant types
Merge pull request #2 from goodplayer/master

add support for variant types when using deferred objects