You stand outside the window to your beloved's house. You peer through the glass, searching for a glimpse of any part of him you can catch. You just barely catch the movement of him walking into the next room. You follow to the adjacent window. It seems he must have caught sight of you at some point, because in this room the curtains are drawn when they weren't moments before. You chuckle to yourself under your breath to try and distract from the feeling of your blood boiling with rage and your head throbbing with annoyance. Alright, another approach, then.