Responsive design

Closes #3, #4, #7