fixed float ranges and split search builder into modules