adding __weak self param to the block