https://medium.com/@ianflurkey/mastering-pythons-oop-demystifying-classes-instances-setters-and-getters-9c2b0e99f8e4