I've tried a few recipes on the internet. My mozzarella always turns out grainy, like cottage cheese, and doesn't melt.
I heat the milk to 37 C/98 F and add 1 tsp citric acid for two litres milk. Add rennet and stir. Let stand for 30 minutes. Cut. Heat to 43 C/110 F whilst stirring slowly and carefully (now the curd rips into small pieces, like cottage cheese). Strain. Press. Zap in the microwave. It doesn't melt!
I use store-bought milk, 3% fat. The rennet is fresh and reliable.