This is surprisingly difficult.