codigo fuente incompleto, solo la parte interesante y un ejemplo de implementacion