fields are safer not be exported
referencing the now unexported struct fields
using getters/setters for unexpected fields
using getters/setters
updated TODOs