GUI-1119

incorporated much UX input and code review feedback
@dkavanagh Sorry for the confusion, line 545 in instances.py is broken and will throw a 500 error if left as-is