https://stackoverflow.com/questions/1568091/why-use-getters-and-setters-accessors