Añadido las dos funciones principales

Sería interesante que comentaras más o menos lo que hace Gilles porque
yo no lo tengo muy claro