now horribly complex, but very funny