Change handlers: use weak_ptr & and static funct