Response refactor, bug fixes

Closes #500 #502 #503 #504 #505 #506 #507