Añadidas reglas modularizadas

he factorizado código de las reglas para que sean más fáciles de
comprender y además tener funciones útiles