weakSelf should have been used in a couple blocks (fixed)