refactored SayElement to use attributes method