[MODIFY] allmost closure functions go to anonymous
[MODIFY] use jQuery deferred object