te sirvió el código .. o esperas una respuesta para experimentar ???
mmm... pues no, no esta bien modificado el código...
pienso que lo modificaste según como tu crees que sirven las funciones, pero no es así ... por ejemplo
empty no se usa de esa forma...
demás, tampoco seguiste nuestras recomendaciones...