moved the interesting ranter 'follow-unfollow' logic to the model