added comments, getters, setters, and shit