Commented all methods and changed visibility of methods to most restrictive access possible