There once was a perfect, ordinary family. Everything was quite perfect until one day. The father finds out his daughter is transgender and wants to be a boy. He doesn’t take it so easily. He lashes out at her, saying that she was a mistake and he wishes she never was brought into this world. She takes the yelling with a pained smile. A fake one. For she knows, he doesn’t mean it. But something makes her believe he hates her. Everyday, more cuts and bruises appear on her. She still smiles fakely, to make it seem like everything is okay. But, in reality. Nothing is okay.