Adds private variables and methods, adds new utility methods, improves documentation