bloom filters and lots of math