methods and variables explained.