Once we need to handle one more case, this method should be broken up.