a lot of setup/controller changes to support tab-based messaging. really, there are too many changes to list. im on a roll, and a lot of this stuff is too interconnected to split into separate commits. oh well.