Fix to use weak self in blocks