work in progress with a crap-ton of failures