Again, this is very generic functionality that belongs somewhere less specific.