use parents.
fixing a few bugs.
use @jeremeamia's super closure lib for closure serialization.
Merge branch '4.0'