changed tuple to structs
added less and greater operator with double
all possible value are cached, which allows way more faster collisions
fixde a bug with locking