defined attributes and methods