implemented bishop rules