remove weak.hpp, use para.hpp instead
add support for weak ref