Techniques For Designing Approximation Algorithms For Fair Clustering Problems