faster, fix rules