This get ugly.