attributes and methods