https://cafeamoozesh.com/part12-static-methods-properties-s2/