Source: https://www.cs.umbc.edu/courses/undergraduate/202/spring12/lectures/static-members-methods.pdf