made fill optional with bisect