my impl works now

but it makes weirdo decisions