re formate, add explainations