most of this works, mostly