this shouldn't be so complicated.