+ option: timeout
+ util: deep extend (for objects)
using timeout for re-compiling files