shit getting nasty and imperative, but working