Angular invites

Turns out there's no great way to do AMS inheritance here. I think this is the cleanest way, even if it's not massively object-orienty; we need this logic somewhere and it's probably best out of the controller.