? possibly add some more documentation throughout this class and add comments to the end braces clarifying what is it ending to help readability