1. update finished
2. kill some important bugs below:
    '&' is necessary in update_proxy(proxy.hpp)
    dlopen('user.so', ...) is buggy while dlopen('./user.so', ...) is right
    *(std::function<>*) conversion is need with dlsym to load a function object/functor