attributes and empty functions