seems like this class and supporting methods might make sense to put outside the commtrack app, though could do that if/when someone wants to reuse them.