Simplificado código y añadidas diversas funcionalidades