whoops, factor out one more piece