This is still overly-complicated.