One page AJAX interface

Don't think I've handled updating the branch in the best way possible.

However, just take all the changes from my branch (it should be already merged correctly with master).