There was a girl called Amy. She was very sweet, kind and just a great person to be around. She had autism and she got bullied quite a lot because of it, she only had a few friends that she could talk to and were willing to listen to her about her interests and what not. They tried to help her out to the best of their ability, but she killed herself, unable to handle the rest of the world.