refactor for the sake of testing and clarity
cleaning up my mess, more clear naming too
unit test rename and add getter and setter