recursive ruler