need to figure out why some odd values still get through. but its doable right now.