I think this function is big enough such to be shoved in the .cc file (clutters the class interface).