close enough, but sphere could use work