Responsive

@jxa Let's talk about this when we have a chance. Lots of code review needed :smiley_cat: 
I *haven't* done this one yet, partly because I feel like I need a little more time with it.