https://medium.com/@devhoangkien/typescript-naming-conventions-best-practices-for-variables-and-functions-c7b059196f3b