merge adding title
improve sanity checks
remove obsolete functions
Put course validating logic on the server-side

It's a big ball of mistrust. I'm not usually like that.