Added setters and getters, comments, and more